package 刷题10月.每日一题0930;
// https://leetcode-cn.com/problems/distribute-candies/
public class 哈希575分糖果1101 {
    // class Solution {
//     public int distributeCandies(int[] candyType) {
//         int n=candyType.length/2;
//         HashMap<Integer,Integer> map=new HashMap<>();
//         for(int i=0;i<candyType.length;i++){
//             map.put(candyType[i],1);
//             if(map.get(candyType[i])!=1){
//                 map.put(candyType[i],1);
//             }
//         }
//         if(map.size()==n){
//             return n;
//         }
//         if(map.size()>n){
//             return n;
//         }
//         return map.size();
//     }
// }

// class Solution {
//     public int distributeCandies(int[] candyType) {
//        Arrays.sort(candyType);
//        int mi=1;
//        for(int i=0;i<candyType.length-1;i++){
//            if(candyType[i] !=candyType[i+1])    mi++;
//        }
//        int length = candyType.length/2;
//        return Math.min(mi,length);
//     }
// }
   // https://leetcode-cn.com/problems/distribute-candies/
    class Solution {
        public int distributeCandies(int[] candyType) {
            int count = 0;
            boolean[] map = new boolean[200001];
            for (int x : candyType) {
                if (!map[x + 100000]) {
                    count++;
                    map[x + 100000] = true;
                    if (count >= candyType.length / 2) {
                        break;
                    }
                }
            }
            return count;
        }
    }

}
